from docx import Document
from docx.shared import Pt, RGBColor
from docx.enum.style import WD_STYLE_TYPE

# 1) 创建一个文档对象
document = Document()  # 新建文档对象
# Document("info.docx") #读取现有的word文档,建立文档对象

# 2) 写入内容
document.add_heading("慕课网简介", level=4)  # level=4 设置标题为4号
# 样式  官方样式对照表: https://www.thedoctools.com/word-macros-tips/word-macros/create-style-name-list
style = document.styles.add_style('textStyle', WD_STYLE_TYPE.PARAGRAPH)
print(style.style_id + ' ' + style.name)
style.font.size = Pt(5)
# document.styles['textStyle'].delete() #删除样式

text_str = '梁琴从天而降,生辉一闪;天空变得及其美丽;仙女下凡了吗?噢噢噢噢 耶耶耶;果真如此.梁琴从天而降,生辉一闪;天空变得及其美丽;仙女下凡了吗?噢噢噢噢 耶耶耶;果真如此.梁琴从天而降,生辉一闪;天空变得及其美丽;仙女下凡了吗?噢噢噢噢 耶耶耶;果真如此.梁琴从天而降,生辉一闪;天空变得及其美丽;仙女下凡了吗?噢噢噢噢 耶耶耶;果真如此.梁琴从天而降,生辉一闪;天空变得及其美丽;仙女下凡了吗?噢噢噢噢 耶耶耶;果真如此.梁琴从天而降,生辉一闪;天空变得及其美丽;仙女下凡了吗?噢噢噢噢 耶耶耶;果真如此.'
# 段落
p1 = document.add_paragraph(text_str)
p1.insert_paragraph_before('在段落前插入一个新的段落---___-----', style='textStyle')

format = p1.paragraph_format
# 左右缩进
format.left_indent = Pt(20)
format.right_indent = Pt(20)
format.first_line_indent = Pt(20)  # 首行缩进
format.line_spacing = 1.5  # 设置行间距

run = p1.add_run('我是最美丽的王子的公主啊啊啊;是事实.王炸!!')
# 字体,字号,文字颜色
run.font.size = Pt(12)
run.font.name = '微软雅黑'
run.font.color.rgb = RGBColor(233, 24, 233)

run1 = p1.add_run('你已经无敌于天下来,从此人民走向世界共和;幸福繁衍子孙后代.')
# 加粗,下划线,斜体
run1.bold = True
run1.font.underline = True
run1.font.italic = True

# 插入图片
document.add_picture('../myFile/1.png')
document.add_picture('../myFile/1.png', Pt(30), Pt(20))  # 指定图片大小

# 插入表格
table = document.add_table(rows=1, cols=3, style='Medium List 2')  # 一行三列的表格
header_cells = table.rows[0].cells  # 第一行的所有列
header_cells[0].text = '月份'
header_cells[1].text = '预期销售额'
header_cells[2].text = '实际销售额'
# 数据
data = (
    ['一月份', 500, 600],
    ['二月份', 900, 600],
    ['三月份', 400, 500]
)
for item in data:
    rows_cells = table.add_row().cells
    rows_cells[0].text = item[0]
    rows_cells[1].text = str(item[1])
    rows_cells[2].text = str(item[2])

# 获取表格
print(len(document.tables[0].rows))  # 打印第一个表格的总行数
print(len(document.tables[0].columns))  # 打印第一个表格的总列数
print(document.tables[0].cell(0, 2).text)  # 第一个表格B2单元格内容
# 3) 保存文档
document.save('../myFile/word文档.docx')
